#ifndef SCREEN_H
#define SCREEN_H

#include "types/Vector2D.h"
#include <list>
#include "types/Color.h"

namespace SolidityEngine{

class Screen
{
    public:
        class Resolution
        {
            int _w, _h;
            bool _fullscreen;
            public:
                Resolution(int w, int h, bool fullscreen):_w(w),_h(h),_fullscreen(fullscreen){};
                int& Width() {return _w;};
                int Width() const {return _w;};
                int& Height() {return _h;};
                int Height() const {return _h;};
                bool& FullScreen() {return _fullscreen;};
                bool FullScreen() const {return _fullscreen;};
        };
    private:
        static bool _fullscreen;
        static Color32 _clearcolor;
        static Resolution _requestedres;

    public:
        Screen();
        ~Screen();

        static std::list<Resolution> Resolutions();
        static Resolution CurrentResolution();
        static Resolution& RequestedResolution();
        static int Width();
        static int Height();
        static bool FullScreen();
        static Color32 ClearColor();

        static void SetResolution(Resolution res, const Color32& col);
        static void SetResolution(Resolution res);

};

}

#endif // SCREEN_H
